//
//
//
//
//
//
//
//
import dayButton from './dayButton'
import * as dateUtils from './dateUtils'
export default {
props: {
displayDate: {
type: Date
},
firstDayOfWeek: {
type: Number,
default: 1
},
maxDate: {
type: Date
},
minDate: {
type: Date
},
selectedDate: {
type: Date
},
shouldDisableDate: {
type: Function
}
},
data () {
return {
weeksArray: dateUtils.getWeekArray(this.displayDate || new Date(), this.firstDayOfWeek)
}
},
methods: {
equalsDate (date) {
return dateUtils.isEqualDate(date, this.selectedDate)
},
isDisableDate (day) {
if (day === null) return false
let disabled = false
if (this.maxDate && this.minDate) disabled = !dateUtils.isBetweenDates(day, this.minDate, this.maxDate)
if (!disabled && this.shouldDisableDate) disabled = this.shouldDisableDate(day)
return disabled
},
handleClick (date) {
if (date) this.$emit('selected', date)
}
},
watch: {
displayDate (val) {
return dateUtils.getWeekArray(val || new Date(), this.firstDayOfWeek)
}
},
components: {
'day-button': dayButton
}
}
|